package com.zhiche.lisa.bms.dao.model.bill;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 客户或承运商账单明细
 * </p>
 *
 * @author liuanshun
 * @since 2018-09-19
 */
@TableName("lisa_bill_io_detail")
public class BillIoDetail extends Model<BillIoDetail> {

    private static final long serialVersionUID = 1L;

	@TableId(value="id", type= IdType.AUTO)
	private Long id;
    /**
     * 账单ID
     */
	@TableField("head_id")
	private Long headId;
    /**
     * 主运单表码
     */
	@TableField("ship_code")
	private String shipCode;
    /**
     * 费用类型
     */
	@TableField("cost_type")
	private String costType;
    /**
     * 费用类型名称
     */
	@TableField("cost_name")
	private String costName;
    /**
     * 运单明细ID
     */
	@TableField("ship_dtl_id")
	private String shipDtlId;
    /**
     * 车型编码
     */
	@TableField("vehicle_type_id")
	private Integer vehicleTypeId;
    /**
     * 车型名称
     */
	@TableField("vehicle_type_name")
	private String vehicleTypeName;
    /**
     * 运输方式
     */
	@TableField("trans_model")
	private String transModel;
    /**
     * 运力名称
     */
	@TableField("cap_name")
	private String capName;
    /**
     * 司机名字
     */
	private String driverName;
    /**
     * 车架/车牌号
     */
	private String vin;
    /**
     * 发运时间
     */
	@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@TableField("ship_time")
	private Date shipTime;
    /**
     * 起运地
     */
	@TableField("start_addr")
	private String startAddr;
    /**
     * 目的地
     */
	@TableField("end_addr")
	private String endAddr;
    /**
     * 合同id
     */
	@TableField("contract_id")
	private Integer contractId;
    /**
     * 合同编码
     */
	@TableField("contract_name")
	private String contractName;
    /**
     * 合同单价
     */
	@TableField("contract_price")
	private BigDecimal contractPrice;
    /**
     * 合同公里数
     */
	@TableField("contract_miles")
	private BigDecimal contractMiles;
	/**
	 * 业务主体
	 */
	private String ciams;
    /**
     * 计费单价
     */
	@TableField("actual_price")
	private BigDecimal actualPrice;
    /**
     * 计费公里数
     */
	private BigDecimal kilometre;
    /**
     * 结算金额(总金额)
     */
	@TableField("actual_amt")
	private BigDecimal actualAmt;
    /**
     * 下单时间
     */
	@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@TableField("order_date")
	private Date orderDate;
    /**
     * 回单时间
     */
	@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@TableField("receipt_date")
	private Date receiptDate;
    /**
     * 运单状态:0-已发运 1-已运抵 2-已回单
     */
	@TableField("load_status")
	private String loadStatus;
    /**
     * 创建时间
     */
	@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@TableField("gmt_create")
	private Date gmtCreate;
    /**
     * 修改时间
     */
	@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@TableField("gmt_modify")
	private Date gmtModify;
    /**
     * 实际费用
     */
	@TableField("act_amt")
	private BigDecimal actAmt;
    /**
     * 运费
     */
	private BigDecimal fare;
    /**
     * 其他费用
     */
	@TableField("bill_money")
	private BigDecimal billMoney;
    /**
     * 实际单价
     */
	@TableField("act_price")
	private BigDecimal actPrice;
    /**
     * 数量
     */
	private Integer num;
	/**
	 * 客户运单号
	 */
	@TableField("customer_code")
	private String customerCode;
	/**
	 * 调度指令号
	 */
	@TableField("dispatch_code")
	private String dispatchCode;
	/**
	 * 车牌
	 */
	@TableField("plate_num")
	private String plateNum;
	/**
	 * 其他费用
	 */
	@TableField("other_money")
	private BigDecimal otherMoney;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getHeadId() {
		return headId;
	}

	public void setHeadId(Long headId) {
		this.headId = headId;
	}

	public String getShipCode() {
		return shipCode;
	}

	public void setShipCode(String shipCode) {
		this.shipCode = shipCode;
	}

	public String getCostType() {
		return costType;
	}

	public void setCostType(String costType) {
		this.costType = costType;
	}

	public String getCostName() {
		return costName;
	}

	public void setCostName(String costName) {
		this.costName = costName;
	}

	public String getShipDtlId() {
		return shipDtlId;
	}

	public void setShipDtlId(String shipDtlId) {
		this.shipDtlId = shipDtlId;
	}

	public Integer getVehicleTypeId() {
		return vehicleTypeId;
	}

	public void setVehicleTypeId(Integer vehicleTypeId) {
		this.vehicleTypeId = vehicleTypeId;
	}

	public String getVehicleTypeName() {
		return vehicleTypeName;
	}

	public void setVehicleTypeName(String vehicleTypeName) {
		this.vehicleTypeName = vehicleTypeName;
	}

	public String getTransModel() {
		return transModel;
	}

	public void setTransModel(String transModel) {
		this.transModel = transModel;
	}

	public String getCapName() {
		return capName;
	}

	public void setCapName(String capName) {
		this.capName = capName;
	}

	public String getDriverName() {
		return driverName;
	}

	public void setDriverName(String driverName) {
		this.driverName = driverName;
	}

	public String getVin() {
		return vin;
	}

	public void setVin(String vin) {
		this.vin = vin;
	}

	public Date getShipTime() {
		return shipTime;
	}

	public void setShipTime(Date shipTime) {
		this.shipTime = shipTime;
	}

	public String getStartAddr() {
		return startAddr;
	}

	public void setStartAddr(String startAddr) {
		this.startAddr = startAddr;
	}

	public String getEndAddr() {
		return endAddr;
	}

	public void setEndAddr(String endAddr) {
		this.endAddr = endAddr;
	}

	public Integer getContractId() {
		return contractId;
	}

	public void setContractId(Integer contractId) {
		this.contractId = contractId;
	}

	public String getContractName() {
		return contractName;
	}

	public void setContractName(String contractName) {
		this.contractName = contractName;
	}

	public BigDecimal getContractPrice() {
		return contractPrice;
	}

	public void setContractPrice(BigDecimal contractPrice) {
		this.contractPrice = contractPrice;
	}

	public BigDecimal getContractMiles() {
		return contractMiles;
	}

	public void setContractMiles(BigDecimal contractMiles) {
		this.contractMiles = contractMiles;
	}

	public String getCiams() {
		return ciams;
	}

	public void setCiams(String ciams) {
		this.ciams = ciams;
	}

	public BigDecimal getActualPrice() {
		return actualPrice;
	}

	public void setActualPrice(BigDecimal actualPrice) {
		this.actualPrice = actualPrice;
	}

	public BigDecimal getKilometre() {
		return kilometre;
	}

	public void setKilometre(BigDecimal kilometre) {
		this.kilometre = kilometre;
	}

	public BigDecimal getActualAmt() {
		return actualAmt;
	}

	public void setActualAmt(BigDecimal actualAmt) {
		this.actualAmt = actualAmt;
	}

	public Date getOrderDate() {
		return orderDate;
	}

	public void setOrderDate(Date orderDate) {
		this.orderDate = orderDate;
	}

	public Date getReceiptDate() {
		return receiptDate;
	}

	public void setReceiptDate(Date receiptDate) {
		this.receiptDate = receiptDate;
	}

	public String getLoadStatus() {
		return loadStatus;
	}

	public void setLoadStatus(String loadStatus) {
		this.loadStatus = loadStatus;
	}

	public Date getGmtCreate() {
		return gmtCreate;
	}

	public void setGmtCreate(Date gmtCreate) {
		this.gmtCreate = gmtCreate;
	}

	public Date getGmtModify() {
		return gmtModify;
	}

	public void setGmtModify(Date gmtModify) {
		this.gmtModify = gmtModify;
	}

	public BigDecimal getActAmt() {
		return actAmt;
	}

	public void setActAmt(BigDecimal actAmt) {
		this.actAmt = actAmt;
	}

	public BigDecimal getFare() {
		return fare;
	}

	public void setFare(BigDecimal fare) {
		this.fare = fare;
	}

	public BigDecimal getBillMoney() {
		return billMoney;
	}

	public void setBillMoney(BigDecimal billMoney) {
		this.billMoney = billMoney;
	}

	public BigDecimal getActPrice() {
		return actPrice;
	}

	public void setActPrice(BigDecimal actPrice) {
		this.actPrice = actPrice;
	}

	public Integer getNum() {
		return num;
	}

	public void setNum(Integer num) {
		this.num = num;
	}

	public String getCustomerCode() {
		return customerCode;
	}

	public void setCustomerCode(String customerCode) {
		this.customerCode = customerCode;
	}

	public String getDispatchCode() {
		return dispatchCode;
	}

	public void setDispatchCode(String dispatchCode) {
		this.dispatchCode = dispatchCode;
	}

	public String getPlateNum() {
		return plateNum;
	}

	public void setPlateNum(String plateNum) {
		this.plateNum = plateNum;
	}

	public BigDecimal getOtherMoney() {
		return otherMoney;
	}

	public void setOtherMoney(BigDecimal otherMoney) {
		this.otherMoney = otherMoney;
	}

	@Override
	protected Serializable pkVal() {
		return this.id;
	}

	@Override
	public String toString() {
		final StringBuilder sb = new StringBuilder("BillIoDetail{");
		sb.append("id=").append(id);
		sb.append(", headId=").append(headId);
		sb.append(", shipCode='").append(shipCode).append('\'');
		sb.append(", costType='").append(costType).append('\'');
		sb.append(", costName='").append(costName).append('\'');
		sb.append(", shipDtlId='").append(shipDtlId).append('\'');
		sb.append(", vehicleTypeId=").append(vehicleTypeId);
		sb.append(", vehicleTypeName='").append(vehicleTypeName).append('\'');
		sb.append(", transModel='").append(transModel).append('\'');
		sb.append(", capName='").append(capName).append('\'');
		sb.append(", driverName='").append(driverName).append('\'');
		sb.append(", vin='").append(vin).append('\'');
		sb.append(", shipTime=").append(shipTime);
		sb.append(", startAddr='").append(startAddr).append('\'');
		sb.append(", endAddr='").append(endAddr).append('\'');
		sb.append(", contractId=").append(contractId);
		sb.append(", contractName='").append(contractName).append('\'');
		sb.append(", contractPrice=").append(contractPrice);
		sb.append(", contractMiles=").append(contractMiles);
		sb.append(", actualPrice=").append(actualPrice);
		sb.append(", kilometre=").append(kilometre);
		sb.append(", actualAmt=").append(actualAmt);
		sb.append(", orderDate=").append(orderDate);
		sb.append(", receiptDate=").append(receiptDate);
		sb.append(", loadStatus='").append(loadStatus).append('\'');
		sb.append(", gmtCreate=").append(gmtCreate);
		sb.append(", gmtModify=").append(gmtModify);
		sb.append(", actAmt=").append(actAmt);
		sb.append(", fare=").append(fare);
		sb.append(", billMoney=").append(billMoney);
		sb.append(", actPrice=").append(actPrice);
		sb.append(", num=").append(num);
		sb.append(", customerCode='").append(customerCode).append('\'');
		sb.append(", otherMoney='").append(otherMoney).append('\'');
		sb.append('}');
		return sb.toString();
	}
}
